package com.canaan.business.mapper.basic;

import com.canaan.business.domain.basic.WmsProduct;
import com.canaan.business.domain.vo.ProductStockVo;

import java.util.List;


/**
 * 物料主数据Mapper接口
 *
 * @author ruoyi
 * @date 2022-11-30
 */
public interface WmsProductMapper
{
    /**
     * 查询物料主数据
     *
     * @param id 物料主数据主键
     * @return 物料主数据
     */
    public WmsProduct selectWmsProductById(Long id);

    /**
     * 根据物料编号查询物料
     *
     * @param productNo 物料编号
     * @return 物料主数据
     */
    public WmsProduct selectWmsProductByProductNo(String productNo);
    /**
     * 根据物料编号查询物料列表
     *
     * @param productNos 物料编号列表
     * @return 物料主数据
     */
    public List<WmsProduct> selectWmsProductsByProductNos(List<String> productNos);

    /**
     * 根据物料名称查询物料
     *
     * @param productName 物料名称
     * @return 物料主数据
     */
    public WmsProduct selectWmsProductByProductName(String productName);
    /**

    /**
     * 查询物料主数据列表
     *
     * @param wmsProduct 物料主数据
     * @return 物料主数据集合
     */
    public List<WmsProduct> selectWmsProductList(WmsProduct wmsProduct);

    /**
     * 查询物料主数据列表（包含是否配置质检项字段）
     *
     * @param wmsProduct 物料主数据
     * @return 物料主数据集合
     */
    public List<WmsProduct> selectQualityProductList(WmsProduct wmsProduct);

    /**
     * 新增物料主数据
     *
     * @param wmsProduct 物料主数据
     * @return 结果
     */
    public int insertWmsProduct(WmsProduct wmsProduct);

    /**
     * 修改物料主数据
     *
     * @param wmsProduct 物料主数据
     * @return 结果
     */
    public int updateWmsProduct(WmsProduct wmsProduct);

    /**
     * 删除物料主数据
     *
     * @param id 物料主数据主键
     * @return 结果
     */
    public int deleteWmsProductById(Long id);

    /**
     * 批量删除物料主数据
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWmsProductByIds(Long[] ids);

    List<WmsProduct> listByStorehouseNo(ProductStockVo wmsProduct);
}
